package com.excesys.exsecs.energy.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 部门维度表和设备映射表，映射关系如下：
根节点为0，即总体，如山东省设计院或聊城医院，此根节点的映射，在bum_reg_dev中已经完成
每个父节点必须包含子节点下的所有表计，子节点的表计只能在父节点的表计中选取
每个节点的表计必须勾选参与统计部分，方便各维度的统计
设备注册变动时，需要在该表中搜索同步
 *
 * @author lxc
 * @date 2024-02-26 14:14:13
 */
@Data
@TableName("bum_dev_dept_map")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "部门维度表和设备映射表")
public class DevDeptMap extends Model<DevDeptMap> {


	/**
	* 主键
	*/
    @TableId(type = IdType.AUTO)
    @Schema(description="主键")
    private Long id;

	/**
	* 部门id
	*/
    @Schema(description="部门id")
    private Long deptId;

	/**
	* 注册设备主键（该字段必须在设备注册变动时同步）
	*/
    @Schema(description="注册设备主键（该字段必须在设备注册变动时同步）")
    private Long regDevId;

	/**
	* 注册设备的设备编码（该字段必须在设备注册变动时同步）
	*/
    @Schema(description="注册设备的设备编码（该字段必须在设备注册变动时同步）")
    private String unitNo;

	/**
	 * 设备编码
	 */
	@Schema(description="设备编码")
	@TableField(exist = false)
	private String deviceNo;

	/**
	 * 设备名称
	 */
	@Schema(description="设备名称")
	@TableField(exist = false)
	private String deviceName;

	/**
	 * 表计名称（规范化别名）
	 */
	@Schema(description="表计名称（规范化别名）")
	@TableField(exist = false)
	private String unitName;

	/**
	* 计量设备类型 1电表 2水表 3气。。。
	*/
    @Schema(description="计量设备类型 1电表 2水表 3气。。。")
    private String energyType;

	/**
	* 是否参与该部门统计 0 不参与 1 参与
	*/
    @Schema(description="是否参与该部门统计 0 不参与 1 参与")
    private Integer isStatistic;

	/**
	* 创建人
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建人")
    private String createBy;

	/**
	* 创建时间
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建时间")
    private LocalDateTime createTime;

	/**
	* 更新人
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新人")
    private String updateBy;

	/**
	* 更新时间
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新时间")
    private LocalDateTime updateTime;
}